Skip to content

Conversation

Jules-Bertholet
Copy link
Contributor

@Jules-Bertholet Jules-Bertholet commented Apr 26, 2023

Provides a slightly nicer ICE for #67981, documenting the problem. A proper fix will be necessary before #![feature(unsized_fn_params)] can be stabilized.

The problem is that the design of the "rust-call" ABI is fundamentally not compatible with unsized_fn_params. "rust-call" functions need to collect their arguments into a tuple, but if the arguments are not Sized, said tuple is potentially not even a valid type—and if it is, it requires alloca to create.

@rustbot label +A-abi +A-codegen +F-unboxed_closures +F-unsized_fn_params

@rustbot
Copy link
Collaborator

rustbot commented Apr 26, 2023

r? @wesleywiser

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. F-unsized_fn_params `#![feature(unsized_fn_params)]` A-ABI Area: Concerning the application binary interface (ABI) A-codegen Area: Code generation F-unboxed_closures `#![feature(unboxed_closures)]` labels Apr 26, 2023
@wesleywiser
Copy link
Member

Thanks @Jules-Bertholet!

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Apr 27, 2023

📌 Commit 5b6e747 has been approved by wesleywiser

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 27, 2023
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Apr 27, 2023
…ywiser

Nicer ICE for rust-lang#67981

Provides a slightly nicer ICE for rust-lang#67981, documenting the problem. A proper fix will be necessary before `#![feature(unsized_fn_params)]` can be stabilized.

The problem is that the design of the `"rust-call"` ABI is fundamentally not compatible with `unsized_fn_params`. `"rust-call"` functions need to collect their arguments into a tuple, but if the arguments are not `Sized`, said tuple is potentially not even a valid type—and if it is, it requires `alloca` to create.

`@rustbot` label +A-abi +A-codegen +F-unboxed_closures +F-unsized_fn_params
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 27, 2023
…iaskrgr

Rollup of 7 pull requests

Successful merges:

 - rust-lang#110426 (docs(style): add more let-else examples)
 - rust-lang#110804 (Remove repeated definite articles)
 - rust-lang#110814 (Sprinkle some `#[inline]` in `rustc_data_structures::tagged_ptr`)
 - rust-lang#110816 (Migrate `rustc_passes` to translatable diagnostics)
 - rust-lang#110864 (`IntoFuture::into_future` is no longer unstable)
 - rust-lang#110866 (Make `method-not-found-generic-arg-elision.rs` error message not path dependent)
 - rust-lang#110872 (Nicer ICE for rust-lang#67981)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 52d550b into rust-lang:master Apr 27, 2023
@rustbot rustbot added this to the 1.71.0 milestone Apr 27, 2023
@Jules-Bertholet Jules-Bertholet deleted the err-67981 branch April 27, 2023 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-ABI Area: Concerning the application binary interface (ABI) A-codegen Area: Code generation F-unboxed_closures `#![feature(unboxed_closures)]` F-unsized_fn_params `#![feature(unsized_fn_params)]` S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants